1. Field of the Invention
The invention relates generally to serial attached SCSI (“SAS”) domains and more specifically to apparatus and methods for improved power management and spin-up of drives in a system adapted to use both SAS and Serial AT Attached (“SATA”) disk drives.
2. Discussion of Related Art
Small Computer Systems Interface (“SCSI”) is a SATA American National Standards Institute (“ANSI”) standard electronic interface specifications that allow, for example, computers to communicate with peripheral hardware. Common SCSI compatible peripheral devices may include: disk drives, tape drives, CD drives (“CD-ROM”, “CD-RW”, etc), DVD drives, printers and scanners. SCSI as originally created included both a command/response data structure specification and an interface and protocol standard for a parallel bus structure for attachment of devices. SCSI has evolved from exclusively parallel interfaces to include both parallel and serial interfaces. “SCSI” is now generally understood as referring either to the communication transport media (parallel bus structures and various serial transports) or to a plurality of primary commands common to most devices and command sets to meet the needs of specific device types as well as a variety of interface standards and protocols.
The collection of primary commands and other command sets may be used with SCSI parallel interfaces as well as with serial interfaces. The serial interface transport media standards that support SCSI command processing include: Fibre Channel, Serial Bus Protocol (used with the Institute of Electrical and Electronics Engineers 1394 FireWire physical protocol; “IEEE 1394”) and the Serial Storage Protocol (“SSP”).
SCSI interface transports and commands are also used to interconnect a plurality of storage devices in a storage subsystem with processing devices. For example, serial SCSI transport media and protocols such as SAS as well as SATA protocol exchanges may be used in such storage subsystems. Those skilled in the art are familiar with SAS and SATA standards as well as other SCSI related specifications and standards. Information about such interfaces and commands is generally obtainable at a number of websites including, for example, http://www.t10.org, at http://www.t13.org, and at http://www.serialata.org.
Such storage subsystems using SAS and SATA compliant storage devices are often used in large storage systems having a plurality of disk drives to store data for organizations and/or businesses. The switched serial connectivity architecture of SAS and SATA allows storage devices to be physically dispersed in an enterprise while continuing to directly support SCSI exchanges and ATA exchanges. This architecture allows for distribution of the storage components in an enterprise without the need for added overhead in converting storage requests from SCSI/ATA into other application layer network exchanges and then back into lower level SCSI/ATA storage related commands.
A SAS storage system typically comprises one or more SAS initiators coupled to one or more SAS targets often via one or more SAS expanders. In general, as is common in all SCSI communications, SAS initiators initiate communications with SAS targets. The expanders expand the number of ports of a SAS domain used to interconnect SAS initiators and SAS targets (collectively referred to as SAS devices or SAS device controllers).
In general, a SAS initiator directs information to a SAS target device through ports of one or more SAS expanders in the SAS domain. A “port” in SAS terminology is a logical concept. A port may comprise one or more physical links in a SAS domain. Such physical links are often referred to as PHYs in the terminology of SAS domains. A port may use a single PHY or, if the port is configured as a wide port, may use multiple PHYs logically grouped to provide higher bandwidth.
A variety of protocols are defined in the SAS standards each useful for communications with particular types of devices and/or for particular applications. Serial SCSI Protocol (“SSP”) provides a mapping of SCSI exchanges supporting multiple initiators and targets. Serial ATA Tunneled Protocol (“STP”) provides a mapping of Serial ATA expanded to support multiple initiators and targets. Serial Management Protocol (“SMP”) provides a management protocol. Each protocol defines layers of exchanges including, for example, application layer processing, transport layer processing, and link layer processing. For example, in general, STP is used in communicating with SATA devices coupled to the SAS domain. An STP initiator (e.g., a host system or a SAS expander) exchanges information with an STP target (e.g., a SATA storage device) using the STP link layer. The STP link layer generally encapsulates SATA related exchanges and flow control into SAS domain exchanges. Or, for example, SSP is used in communicating with SCSI devices coupled to the SAS domain. An SSP initiator exchanges information with an SSP target using the SSP link layer, transport layer, etc.
When any disk drive is initialized, one aspect of that initialization is spin-up of the disk rotating platters within the disk drive. This spin-up aspect of disk drive initialization draws a significant amount of electrical current (relative to the normal steady state spinning operation of the disk drive). In large storage systems having a large number of disk drives it is important to sequence the spin-up of the disk drives in the system to avoid a large aggregate current draw from all disk drives of the system simultaneously spinning up. Such a large current draw requires larger, more expensive power supplies in the storage system that provide the current source required for simultaneous spin-up of all disk drives in the large storage system. Thus, SAS disk drives in particular are specified to permit controlled sequencing of the spin-up of the disk drive platters. A controller in the storage system may thereby controllably sequence the spin-up of all SAS drives in the system. Where the system includes only SAS disk drives, controlled spin-up sequencing is an inherent capability in accordance with the SAS (e.g., SCSI) specifications. SATA devices do not, in general, support such a sequenced initialization as an inherent aspect of the SATA specifications. However, if a storage system includes a heterogeneous mix of SAS device (supporting sequential spin-up) and SATA devices (that do not support sequential spin-up, a problem may arise in that all SATA disk drives in the system may spin-up substantially simultaneously upon application of power thereto. Thus the problem of excessive current draw during spin-up may still arise where a storage system includes a heterogeneous mix of both SAS and SATA disk drives.
It is evident from the above discussion that a need exists for an improved structure and method for initializing disk drives in a storage system supporting a heterogeneous mix of disk drives some of which support controllable spin-up and others that do not.